package cn.edu.zafu.bigdata.linfeifei.g;
//11.12题目3：追加文本并读取文件内容
// 描述：
// 编写一个程序，将用户输入的文本追加到第2题所写的文件中，并读取文件内容显示到控制台。若文件不存在，则创建新文件。
// 具体要求：
// 追加内容：创建一个方法appendToFile(String fileName, String content)，将用户输入的文本追加到指定文件中。
// 读取文件：创建一个方法readFile(String fileName)，读取文件内容并打印。
// 测试：在main方法中，提示用户输入文本，将其追加到文件，然后读取并显示文件内容。
import java.io.*;
import java.util.Scanner;

public class AppendTextFileOperations {

    public static void appendToFile(String fileName, String content) {
        try {
            // 确保目录存在
            File dir = new File(fileName).getParentFile();
            if (!dir.exists()) {
                dir.mkdirs(); // 创建目录
            }
            BufferedWriter writer = new BufferedWriter(new FileWriter(fileName, true));
            writer.newLine();
            writer.write(content);
            writer.close();
            System.out.println("内容追加成功！");
        } catch (IOException e) {
            System.out.println("内容追加失败：" + e.getMessage());
        }
    }

    public static void readFile(String fileName) {
        try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (FileNotFoundException e) {
            System.out.println("文件未找到：" + e.getMessage());
        } catch (IOException e) {
            System.out.println("读取文件失败：" + e.getMessage());
        }
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入您的学号（例如：2022010101）：");
        String studentId = scanner.nextLine();
        String fileName = "files\\" + studentId + ".txt"; // 使用双反斜杠

        System.out.println("请输入要追加到文件的文本：");
        String content = scanner.nextLine();

        appendToFile(fileName, content);
        System.out.println("文件内容如下：");
        readFile(fileName);

        scanner.close();
    }
}